from multiprocessing import Process
import time
import os
#当在主进程中申明全局变量时，在子进程中引用该全局变量时，相当于给每一个子进程都申请了一个变量，互不影响
n = 1  #不可变
list1 = []#可变
def task1(s):
    global n
    while True:
        n+=1
        time.sleep(s)
        print("正在执行任务1,全局n的值：%d，任务1的进程id:%s，父进程的id:%s"%(n,os.getpid(),os.getppid()))
def task2(s):
    global n
    while True:
        n += 1
        time.sleep(s)
        print("正在执行任务2:n的递增，此时的n：%d，任务2的进程id:%s,父进程的id：%s"%(n,os.getpid(),os.getppid()))

if __name__ == '__main__':
    #当前程序是进程
    #子进程
    print(os.getpid())#打印程序的进程id
    p1 = Process(target=task1,name="任务1",args=(1,))
    p1.start()
    p2 = Process(target=task2,name="任务2",args=(2,))
    p2.start()
    while True:
        n+=1
        time.sleep(0.5)
        print("主进程n的值:",n)